FSEEK

#include <stdio.h>
int fseek (stream, offset, origin);
                                                                                                                      
FILE *stream; указатель на структуру FILE.
                                                                
long offset; число байтов от origin.
int origin; начальная позиция.

Описание:
Функция fseek перемещает указатель, соответствующий потоку stream , на новое место расположения, отстоящее от origin на offset байтов. Следующая операция в потоке выполняется над новым месторасположением.
Если поток открыт для обновления, то следующей операцией будет либо чтение, либо запись.
Аргумент origin может быть одной из следующих констант, определенных в <stdio.h>.

                
            ORIGIN                ОПРЕДЕЛЕНИЕ
          (источник, начало)
            
            SEEK-SET              начало файла.
            SEEK-CUR              текущая позиция указателя на файл.
            SEEK-END              конец файла.

Функция fseek используется для перемещения указателя в любое место файла. Указатель может быть также размещен за концом файла. Однако, попытка расположить указатель до начала файла приведет к ошибке.

Возвращаемое значение:
Функция fseek возвращает значение 0, если указатель успешно перемещен. В случае ошибки возвращается любое ненулевое значение. Для устройств, не совместимых с операцией seek, (таких как терминал и печать), возвращаемое значение неопределенно.

Замечание!
Для потоков, открытых в текстовом (преобразующем) режиме, применение fseek является ограниченным, т.к. комбинации ВК - ПС могут стать причиной выработки непредвиденного результата.
Ниже приведены операции (действия) fseek , гарантирующие работу с потоками, открытыми в текстовом режиме:
- смещение origin на величину offset , равную нулю;
- смещение от начала файла на значение offset , полученное после вызова функции ftell.

Пример.

            
               #include <stdio.h>
            
               FILE *stream;
               int result;
            
               stream = fopen("data", "r");
               .
               .
               .
               /* следущий оператор возвращает указатель на файл к  началу
         файла */
            
               result = fseek(stream, 0L, SEEK_SET);
            
Hosted by uCoz